<?php
/**
 * Второй шаг при редактировании/добавлении заказа
 *
 * Формирование списка мастеров, которым будет отправлен заказ
 * Формирование текста SMS
 * вывод этого списка модератору для подтверждения
 * после подтверждения, СМС отправляются либо сразу (из этого скрипта, либо ставятся в очередь задач)
 * 
 * Подробнее см. очередь задач 
 */

namespace Sbm\ControlPanel;

use Sbm;

$id = ( isset($_GET['id']) && is_numeric($_GET['id']) ) ? abs($_GET['id']) : NULL;

$todo = isset($_POST['todo']) ? $_POST['todo'] : 'list';

$order_search = new Sbm\OrderSearch($db);
if ( $orders = $order_search->GetById($id) )
{
	$order = current($orders);
	// получаем текст SMS
	$sms_text = get_sms_text($order);

	// получаем список мастеров подходящих для данного заказа
	$masters = get_masters_by_order($db, $order);

	// формируем массив сообщений
	$sms_queue = array();
	foreach ($masters as $master)
	{
		$sms_queue = array(
			'phone' => $master->phone,
			'text' => $sms_text,
		);
	}

	// если есть отправка формы от модератора
	if ( !empty($_POST) && sizeof($_POST) )
	{
		var_export($_POST);
	}
}
else
{
	trigger_error("Order not found. Please call with your administrator", E_USER_WARNING);
}


/** ============================================================================================= * */

/**
 * Возвращает список матеров подходящих для данного заказа
 * 
 * @param DB $db
 * @param Order $order
 * 
 * @return array of Master
 */
function get_masters_by_order( &$db, $order )
{
	// максимальное кол-во мастеров
	$limit = 5;

	// массив с рузельтатами
	$data = array();

	$region = $order->region;
	$profession = $order->profession;

	$master_search = new Sbm\MasterSearch($db);
	$data = $master_search->GetByFilters(array(
		'from' => "`{master}` LEFT JOIN "
		. "`{master_profession}` ON `{master}`.`id`=`{master_profession}`.`master_id` LEFT JOIN "
		. "`{master_region}` ON `{master}`.`id`=`{master_region}`.`master_id`",
		'where' => "`{master_profession}`.`profession_id` = '" . $profession->id . "' && "
		. "`{master_region}`.`region_id`= '" . $region->id . "'",
			));
	return $data;
}

/**
 * Возвращает текст для SMS
 * @param Order $order
 * @return string 
 */
function get_sms_text( $order )
{
	$text = sprintf("#%d %s. %s %0.2f", $order->id, $order->equipment->title, $order->defect, $order->price);
	return $text;
}